package fachklassen;

import helper.BLError;
import helper.BLWarning;

import java.util.ArrayList;

import database.DatabaseManager;
/**
 * Fachklasse mit Gettern und Settern
 *
 * @author	Michael Wolf
 * @author	Tanja Goletz
 * @version	1.0
 */
public class Betrieb {
	int betriebsID;
	String firmenname;
	String strasse;
	String hausnr;
	String plz;
	String ort;
	
	ArrayList<Ausbilder> ausbilder = null;
	ArrayList<Azubi> azubis = null;
	
	public int getBetriebsID() {
		return betriebsID;
	}
	public void setBetriebsID(int betriebsID) {
		this.betriebsID = betriebsID;
	}
	public String getFirmenname() {
		return firmenname;
	}
	public void setFirmenname(String firmenname) {
		this.firmenname = firmenname;
	}
	public String getStrasse() {
		return strasse;
	}
	public void setStrasse(String strasse) {
		this.strasse = strasse;
	}
	public String getHausnr() {
		return hausnr;
	}
	public void setHausnr(String hausnr) {
		this.hausnr = hausnr;
	}
	public String getPlz() {
		return plz;
	}
	public void setPlz(String plz) {
		this.plz = plz;
	}
	public String getOrt() {
		return ort;
	}
	public void setOrt(String ort) {
		this.ort = ort;
	}
	public ArrayList<Ausbilder> getAusbilder() throws BLError, BLWarning {
		if (ausbilder == null) {
			ArrayList<Object> elements = DatabaseManager.getInstance().getByAttribute(Ausbilder.class, "betriebsID", betriebsID);
			ausbilder = new ArrayList<Ausbilder>();
			for (Object element : elements) {
				ausbilder.add((Ausbilder)element);
			}
		}
		return ausbilder;
	}
	public ArrayList<Azubi> getAzubis() throws BLError, BLWarning {
		if (azubis == null) {
			azubis = new ArrayList<Azubi>();
			for (Ausbilder ausbilder : this.getAusbilder()) {
				ArrayList<Object> elements = DatabaseManager.getInstance().getByAttribute(Azubi.class, "ausbilderID", ausbilder.getAusbilderID());
				
				for (Object element : elements) {
					azubis.add((Azubi)element);
				}
			}
		}
		return azubis;
	}

	public String toString() {
		return this.getFirmenname();
	}
}
